package com.jf.session;

/**
 * Created with IntelliJ IDEA
 * Description:Session学习
 * User:22954
 * Date:2024-08-28
 * Time:23:48
 */
public class Session {
    /*
    Session是一个容器,由服务器(Tomcat)维护,类似HashMap<String, Object>
    ==================================================================
    Session创建流程:
        req.getSession() ->
            if (HTTP请求的Cookie包含JSESSIONID) {
                if (Tomcat存在Session的ID == JSESSIONID) {
                    后端获得服务器(Tomcat)维护的该Session
                }
            } else {
                服务器(Tomcat)创建新的Session并维护
                后端获得该新的Session
                HTTP响应返回 Set-Cookie: JSESSIONID:...
                浏览器维护的Cookie保存新的JSESSIONID
            }
    ==================================================================
    Session生命周期:
        Session有超时时长,超过时长浏览器没有访问服务器,跟浏览器关联的Session被销毁
        Session创建时默认的超时时长为30分钟(在Tomcat的conf/web.xml中设置)
        session.setMaxInactiveInterval(int interval)  设置Session的超时时长(单位为s)
            interval为正数,设定Session的超时时长
            interval为0,表示默认Session超时时长(30min)
            interval为负数,表示永不超时
        session.invalidate() 立刻销毁该Session对象
     */
}
